Automatic Fence Insertion in Integer Programs via Predicate Abstraction

نویسندگان

  • Parosh Aziz Abdulla
  • Mohamed Faouzi Atig
  • Yu-Fang Chen
  • Carl Leonardsson
  • Ahmed Rezine
چکیده

We propose an automatic fence insertion and verification framework for concurrent programs running under relaxed memory. Unlike previous approaches to this problem, which allow only variables of finite domain, we target programs with (unbounded) integer variables. The problem is difficult because it has two different sources of infiniteness: unbounded store buffers and unbounded integer variables. Our framework consists of three main components: (1) a finite abstraction technique for the store buffers, (2) a finite abstraction technique for the integer variables, and (3) a counterexample guided abstraction refinement loop of the model obtained from the combination of the two abstraction techniques. We have implemented a prototype based on the framework and run it successfully on all standard benchmarks together with several challenging examples that are beyond the applicability of existing methods.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Verification of Software under Relaxed Memory

Leonardsson, C. 2016. Verification of Software under Relaxed Memory. Digital Comprehensive Summaries of Uppsala Dissertations from the Faculty of Science and Technology 1387. 102 pp. Uppsala: Acta Universitatis Upsaliensis. ISBN 978-91-554-9616-6. The work covered in this thesis concerns automatic analysis of correctness of parallel programs running under relaxed memory models. When a parallel ...

متن کامل

Memorax, a Precise and Sound Tool for Automatic Fence Insertion under TSO

We introduce MEMORAX, a tool for the verification of control state reachability (i.e., safety properties) of concurrent programs manipulating finite range and integer variables and running on top of weak memory models. The verification task is non-trivial as it involves exploring state spaces of arbitrary or even infinite sizes. Even for programs that only manipulate finite range variables, the...

متن کامل

Automating Regression Verification of Pointer Programs by Predicate Abstraction

Regression verification is an approach complementing regression testing with formal verification. The goal is to formally prove that two versions of a program behave either equally or differently in a precisely specified way. In this paper, we present a novel automatic approach for regression verification that reduces the equivalence of two related imperative pointer programs to constrained Hor...

متن کامل

Automatic Verification of Golog Programs via Predicate Abstraction

Golog is a logic programming language for high-level agent control. In a recent paper, we proposed a sound but incomplete method for automatic verification of partial correctness of Golog programs where we give a number of heuristic methods to strengthen given formulas in order to discover loop invariants. However, our method does not work on arithmetic domains. On the other hand, the method of...

متن کامل

Indexed Predicate Discovery for Unbounded System Verification

Predicate abstraction has been proved effective for verifying several infinite-state systems. In predicate abstraction, an abstract system is automatically constructed given a set of predicates. Predicate abstraction coupled with automatic predicate discovery provides for a completely automatic verification scheme. For systems with unbounded integer state variables (e.g. software), counterexamp...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012